package com.yourenbang.lingyun.transaction.mapper;

import com.yourenbang.lingyun.domain.PayType;
import com.yourenbang.lingyun.transaction.web.domain.dto.pay.PayChannelListDTO;
import com.yourenbang.lingyun.transaction.web.domain.dto.pay.PayTypeListDTO;
import com.yourenbang.lingyun.transaction.web.domain.po.T1AlarmAmountVO;
import com.yourenbang.lingyun.transaction.web.domain.po.TSPayType;
import com.yourenbang.lingyun.transaction.web.domain.po.TsPayChannel;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface TransactionPayTypeMapper {

    /**
     * 获取支付方式列表
     */
    List<TSPayType> payTypeList(@Param("form") PayTypeListDTO dto);

    /**
     * 获取支付方式列表
     */
    List<TsPayChannel> payChannelList(@Param("form") PayChannelListDTO dto);

    /**
     * 获取提现-支付宝支付方式列表
     */
    List<TSPayType> withdrawAlipayList();

    /**
     * 获取支付方式列表
     */
    List<PayType> getPayTypeByPayFrom(@Param("payFrom") String payFrom);

    /**
     * 获取银行卡支付方式
     */
    PayType getBankCardPayTypeByPayFrom(@Param("payFrom") String payFrom,@Param("platNo") Short platNo);

    /**
     * 获取银行卡支付方式
     */
    List<String> getBankCardPayType(@Param("payFrom") String payFrom,@Param("payTypes") String[] payTypes);

    /**
     * 获取支付方式
     */
    PayType getPayType(@Param("code") String code, @Param("payFrom") String payFrom);

    /**
     * 关闭支付方式
     */
    int closePayTypeByCodeNeedPlatNo(@Param("code") String code, @Param("platNo") Short platNo);

    /**
     * 关闭支付方式
     */
    int closePayType(@Param("code") String code, @Param("payFrom") String payFrom);

    /**
     * 关闭支付方式
     */
    int closePayTypeNeedPlatNo(@Param("code") String code, @Param("payFrom") String payFrom,@Param("platNo") Short platNo);

    /**
     * 打开支付方式
     */
    int openPayTypeNeedPlatNo(@Param("code") String code, @Param("payFrom") String payFrom,@Param("platNo") Short platNo);

    /**
     * 获取支付方式
     */
    PayType getPayTypeNeedPlatNo(@Param("code") String code, @Param("payFrom") String payFrom,@Param("platNo") Short platNo);


    /**
     * 关闭支付方式
     */
    int closePayTypeByChannelId(@Param("payChannelId") Integer payChannelId);

    /**
     * 关闭支付方式
     */
    int closePayTypeByChannelIdAndPlatNo(@Param("payChannelId") Integer payChannelId,@Param("platNo") Short platNo);

    /**
     * 打开支付方式
     */
    int openPayTypeByChannelId(@Param("payChannelId") Integer payChannelId,@Param("platNo") Short platNo);

    /**
     * 更改支付宝提现支付渠道
     */
    int changeWithdrawAlipayPayChannel(@Param("payChannelId") Integer payChannelId);


    List<T1AlarmAmountVO> queryT1PayAmount(@Param("batchNumber") String batchNumber);


}